package com.sgj.prototype.improve;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 原型模式
 * @Author: Guoji Shen
 * @Date: 2021/11/12 13:22
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Sheep implements Cloneable{

    /**
     * 名称
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 颜色
     */
    private String color;

    // 克隆该实例，使用默认的 clone 方法来完成
    @Override
    protected Object clone() {
        Sheep sheep = null;
        try {
            sheep = (Sheep)super.clone();
        } catch (CloneNotSupportedException e) {
            System.out.println(e.getMessage());
        }
        return sheep;
    }
}